package String;

import java.util.Arrays;

/*
* 字符串有三种比较常见的支持正则表达式的方法:
* boolean matches(String regex)
* 使用给定的正则表达式验证当前字符格式是否符合,是就返回true
*
* */
public class ZhengZe {
    public static void main(String[] args) {
//        String email = "2442356950@qq.com";
//        String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
//        boolean match = email.matches(regex);
//        if(match){
//            System.out.println("是邮箱");
//        }else {
//            System.out.println("不是邮箱");
//        }

        /*
        * String支持正则表达式第二个方法：去除字符串
        * String[] split(String regex)
        */
        String abc = "asaawaa121waa1";
        //将0-9数字部分的字符串去除掉，得到的字符串以数组的方式返回
       String[] a = abc.split("[0-9]+");
        System.out.println(Arrays.toString(a));
        abc = "123,456,789";
        a = abc.split(",");
        System.out.println(Arrays.toString(a));
        //点.在正则表达式里面有特殊含义，表示任意字符
        abc = ".123..456.789........"; //如果末尾出现连续的可去除的字符串，那么会省略掉生成的空字符串
        a = abc.split("\\.");
//        a = abc.split("\\.+"); 带有+号则可以删除连续的两个点不留空字符串
        System.out.println(Arrays.toString(a));

        /*
        * 第三种方法；替换法
        * String replaceAll(String regex，String str)
        * 将当前字符串满足正则表达式的部分替换为指定字符串
        *
        * */
        String str = "wndansjn1292i102";
        //将数字部分替换为#Number#
       str = str.replaceAll("[0-9]+","#Number#");
        System.out.println(str);
        String regex = "wqnmlgb|mdzz|dsb|wcnm|wrsndm|nc|djb";
        String message = "wqnmlgb!你个dsb，你怎么这么的nc，我真想wrsndm";
        message = message.replaceAll(regex,"***");
        System.out.println(message);
        hash h = new hash();
        System.out.println(h.hashCode());
        hash h1 = new hash();
        System.out.println(h1.hashCode());
        System.out.println(h.equals(h1));

    }
}
